<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 脚本中的代码从加载到执行
    //  1. 语法解析 => 通篇排查脚本中是否存在语法错误(SyntaxError),如果有语法错误,脚本不执行
    // 2. 预编译 => 代码执行前的准备工作 1. 变量提升 2. 确定函数体
    // 3. 解释执行

    // var a = 1;
    // console.log(a);

    // console.log(aa); // 定义错误

    // var b = 2;
    // console.log(b);
    // var c = a + b;
    // console.log(c);


    // JS  异常捕获
    // try {
    //     tryCode - 尝试执行的代码段
    // } catch (err) {
    //     catchCode - 捕获错误的代码块(错误发生时的处理或补救性措施)
    // } finally {
    //     finallyCode - 无论 try / catch 结果如何都会执行的代码块
    // }
    // 注意： catch 和 finally 语句都是可选的，但你在使用 try 语句时必须至少使用一个。


    // try {
    //     var a = 1;
    //     console.log(a);

    //     console.log(aa); // 定义错误

    //     var b = 2;
    //     console.log(b);
    //     var c = a + b;
    //     console.log(c);

    // } catch (err) {
    //     console.log(err);
    //     // throw err;
    // } finally {
    //     console.log("后续执行的代码");
    // }


    // function getStyle(ele, attr) {
    //     if (window.getComputedStyle) {
    //         return window.getComputedStyle(ele)[attr];
    //     } else {
    //         return ele.currentStyle[attr];
    //     }
    // }

    function getStyle(ele, attr) {
        // 先走常规浏览器的方法  => ie报错 => 被catch捕获 => 执行ie的
        try {
            return window.getComputedStyle(ele)[attr];
        } catch (err) {  // 错误发生时的补救性措施
            return ele.currentStyle[attr];
        }
    }








</script>

</html>